package dletc.demo;

import java.util.Arrays;

public class demo05 {

	public static void main(String[] args) {
		//String类常用方法
		//13(掌握) String[] split(String regex) 拆分字符串
		String[] split = "1980-10-11".split("-");
		System.out.println(Arrays.toString(split));

		//14(掌握) boolean startsWith(String prefix)
		System.out.println("http://www.bai.com".startsWith("http:")); //true

		//15(掌握) String substring(int beginIndex) 截取字符串 从第几个索引开始截取
		System.out.println("http://www.baidu.com".substring(7)); //www.baidu.com

		//16(掌握) String substring(int beginIndex, int endIndex)
		//截取字符串  2个参数 一个开始 一个结束   **左闭右开 取不到右边索引**
		System.out.println("http://www.baidu.com".substring(11,16)); //baidu

		//17(掌握) char[] toCharArray() 将字符串转换成char数组
		char[] charArray = "我是中国人".toCharArray();
		System.out.println(Arrays.toString(charArray));

		//18(掌握) String toLowerCase() 转换小写
		System.out.println("ABCDEfg".toLowerCase()); //abcdefg

		//19(掌握) String toUpperCase() 转换大写
		System.out.println("ABCDEfghrj".toUpperCase()); //ABCDEFGHRJ

		//20(掌握) String trim() 去除字符串前后空白，中间不会出去
		System.out.println("      hello   world   ".trim()); //hello   world

		//21(掌握) String中只有一个方法是静态的，不需要new对象
		//这个方法是valueOf(参数); 作用：将“将非字符串转换成字符串”
		String s = String.valueOf(true);
		System.out.println(s);

		System.out.println(String.valueOf(300));

		// 这个静态的valueOf()方法，参数是一个对象的时候，会自动调用该对象的toString()方法吗？
		String s1 = String.valueOf(new Customer());
		//System.out.println(s1); // 没有重写toString()方法之前是对象内存地址 dletc.demo.Customer@4554617c
		System.out.println(s1); //我是一个VIP客户！！！！

		// 我们是不是可以研究一下println()方法的源代码了？
		System.out.println(100);
		System.out.println(3.14);
		System.out.println(true);

		Object obj = new Object();
		// 通过源代码可以看出：为什么输出一个引用的时候，会调用toString()方法!!!!
		//　本质上System.out.println()这个方法在输出任何数据的时候都是先转换成字符串，再输出。
		System.out.println(obj); //java.lang.Object@4554617c

		System.out.println(new Customer()); //我是一个VIP客户！！！！

		String b = "abcd";
		byte[] bytes = b.getBytes();
		System.out.println(Arrays.toString(bytes));//[97, 98, 99, 100]

		String valueOf = String.valueOf(bytes);

		String c = new String(bytes);
		System.out.println(c); //abcd

		char[] charArray2 = b.toCharArray();
		System.out.println(Arrays.toString(charArray2)); //[a, b, c, d]

		System.out.println(charArray2); //abcd
	}

}

class Customer {
	// 重写toString()方法
	@Override
	public String toString() {
		return "我是一个VIP客户！！！！";
	}
}
